There has recently been a large increase in the number of users who use touch screen based devices as a secondary or even primary computing device. However, certain computer paradigms which were designed for user input via keyboard and mouse are still being used in a primarily touch screen based interface. For example, software operating systems which primarily utilize a touch input still use a “cursor” to display a position of interest in a text input box. However, use of a human finger (or stylus) to select a position on a touch screen is not as accurate as a mouse—while a mouse can be used to select a position of interest on a pixel-by-pixel basis, human digits are too large to make similarly granular selections—especially when the screen size is relatively small (such as on a tablet computer or a smart phone). Furthermore, capacitive screen hardware predominantly used in modern touch-based devices is of varying quality, with high-quality screens providing better accuracy than their lower-quality counterparts. Thus, the inherent clumsiness of human digits and irregular surface capacitivity can create problems when a user is trying to move a position of interest (e.g., move a cursor) to a different location. When a user wants to move the cursor, it may take the user several presses on a touch screen to get the cursor to the desired location, leading to frustration and/or loss of concentration.
This difficulty is especially troublesome when inputting complex mathematical or numerical expressions, such as when using a calculator application, a spreadsheet application, etc. For example, mathematical expressions often utilize a plurality of sets of parentheses or brackets to specify the grouping of terms, to specify the precedence of operations, to set apart the arguments of a function from the function itself, etc. When editing a mathematical expression, it can be difficult to place a cursor at a desired location using a touch screen. For example, when the expression has two adjacent parentheses corresponding to nested parentheses and the user wants to add text between the two parentheses, it can be difficult to use the touch screen to place the cursor between the two parentheses. It may take the user several presses or touch screen operations to move the cursor to the desired location, and thus the user may become frustrated with an application over time.
Additionally, new types of display devices (e.g., 3-dimensional (3D) displays) and user interface devices (e.g., motion detection devices that detect spatial gestures) are becoming more common. Existing techniques for navigating cursors have drawbacks in the context of such new types of display and user interface devices.